A computer typically runs an operating system that provides various functionality including allowing other applications to be installed and run on the computer. Such an operating system oftentimes provides a location where applications can store information serving to register the applications as providing certain functionality to other applications and thereby extending the functionality of the operating system. This location could be, for example, an operating system registry. While maintaining such information can be beneficial to the applications, current storage mechanisms are not without their problems.
One such problem is that different applications typically interact with the same location, allowing situations to arise where information stored by one application is deleted, overwritten, or otherwise corrupted by another application. Such situations can result in applications not running and providing their intended functionality. Another such problem is that applications are typically responsible for removing their information from that location when they are uninstalled. If applications do not remove their information correctly, at any given time the location can store information indicating certain applications are available to run even though those applications have been uninstalled and are not actually available to run.